// Package model
// @Author zhongxc
// @Date 2024/1/16 17:39:00
// @Desc
package model

import (
	"time"
)

type SysMenu struct {
	MenuId      int64     `gorm:"column:menu_id"`      // 菜单ID
	ParentId    int64     `gorm:"column:parent_id"`    // 父菜单ID，一级菜单为0
	Name        string    `gorm:"column:name"`         // 菜单名称
	Url         string    `gorm:"column:url"`          // 菜单URL
	Perms       string    `gorm:"column:perms"`        // 授权(多个用逗号分隔，如：user:list,user:create)
	Type        int64     `gorm:"column:type"`         // 类型   0：目录   1：菜单   2：按钮
	Icon        string    `gorm:"column:icon"`         // 菜单图标
	OrderNum    int64     `gorm:"column:order_num"`    // 排序
	CreatedBy   string    `gorm:"column:created_by"`   // 创建人
	CreatedTime time.Time `gorm:"column:created_time"` // 创建时间
	UpdatedBy   string    `gorm:"column:updated_by"`   // 更新人
	UpdatedTime time.Time `gorm:"column:updated_time"` // 更新时间
}

func (m *SysMenu) TableName() string {
	return "sys_menu"
}

func NewSysMenu() *SysMenu {
	return &SysMenu{}
}

const (
	TypeDirectory = 0 // 目录
	TypeMenu      = 1 // 菜单
	TypeButton    = 2 // 按钮
)

func (m *SysMenu) TypeStr() string {
	if m.Type == 0 {
		return "目录"
	} else if m.Type == 1 {
		return "菜单"
	} else if m.Type == 2 {
		return "按钮"
	}
	return ""
}
